package lkx.demo.test3;

/**
    测试强制类型转换
要点
 1. 如果需要将容量大的变量的类型转换为容量小的变量的类型，需要使用强制类型转换
 2. 强制类型转换需要使用强转符：()。在()内指明要转换为的数据类型。
 3. 强制类型转换过程中，可能导致精度损失。
 4. 当某个值想要提升数据类型时，也可以使用强制类型转换。这种情况的强制类型转换是没有风险的，通常省略。
 5. 声明 long 类型变量时，可以出现省略后缀的情况。float 则不能。
 *
 * @author kunxianli
 * @date 2024/01/05 10:55
 **/
public class TestTypeConvert2 {

    public static void main(String[] args) {

        long a1 = 111111L;
//        强制类型转换需要使用强转符：()。在()内指明要转换为的数据类型。
        int a2 = (int)a1;
        System.out.println(a2);
//        强制类型转换过程中，可能导致精度损失。
        byte b1 = (byte)a1;
        System.out.println(b1);// 7

//        当某个值想要提升数据类型时，也可以使用强制类型转换。这种情况的强制类型转换是没有风险的，通常省略。
        int c1 = 10;
        int c2 = 21;

        int c3 = c2/c1; // 默认运算是int类型
        System.out.println(c3); // 2
        double c4 = (double) c2/c1;
        System.out.println(c4); // 2.1

//声明 long 类型变量时，可以出现省略后缀的情况。float 则不能。
//        float d1 = 12.4; // 编译不通过，
        long d2 = 123; //通过


    }

}
